1. A : Type
2. x : A 3. y : A 4. P : A 5. i :
6. j :
7. bb :
8. (i = j) = bb 9. P(if (i = j) then x else y fi )
10. Type
11. (i = j)
12. bb:. ((i = j) = bb) Type
P(if (i = j) then x else y fi )
by (\p.let A = get_term_arg `A` p
bin let x = get_term_arg `x` p
binin let e = get_term_arg `e` p
bin
biAt (get_term_arg `UH` p)
bi(Subst
bi(Sub(
mk_equal_term
mk_equa(mk_set_term (dv x) A (mk_equal_term A e x))
mk_equae
mk_equax)